The Australian was second at the line by just 1.9 seconds after contact between Max Verstappen and Lando Norris took the two leaders out of contention in the closing stages.
It left Russell out front in the final laps from Carlos Sainz and the charging Piastri, who stole second with a bold move around the outside of the Ferrari at Turn 5.
He then quickly closed in on Russell ahead but the laps ran out before he could get close enough to attack.
“I know it’s only my fourth podium in F1 but so close to a win, it hurst a little bit,” Piastri confessed.
“But good points, obviously. I think the second half of the race we were coming on pretty strong.
“Just when it’s that close, you can’t help but hurt a little.”
Piastri had started the race seventh after his best lap in qualifying was deleted for track limits.
Had that time been allowed, a point McLaren fought for as it protested the result of qualifying, he would have started third.
Instead, he battled his way through the pack to mount a late challenge for an unlikely victory.
Second equals his career best having finished second in Monaco and in last year’s Qatar Grand Prix.
Next up is the British Grand Prix, where Piastri almost made his first F1 podium appearance a year ago but for an ill-timed Safety Car.
“Obviously it was a place of good memories from last year and hopefully we can be up the front again,” he said of his Silverstone prospects.
“I haven’t seen what happened with Lando and Max but clearly it was pretty even up the front. I think we’re actually in the mix.
“Silverstone’s a track I always enjoy, team’s home race, so excited for what’s to come.”
Piastri sits sixth in the drivers’ championship with 112 points to his name, just six shy of Red Bull Racing’s Sergio Perez, who finished seventh in Austria.
McLaren has also made ground on both Red Bull Racing and Ferrari, amassing 31 points across the weekend for a total of 268.
That leaves it just 23 back from Ferrari in second and 87 from the top of the constructors’ championship.